<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8" />
    <title>07_案例练习-冒泡排序</title>
</head>

<body>
    <script>
        // 趟     次
        // 0      7
        // 1      6
        // 2      5
        // 3      4
        // 4      3
        // 5      2
        // 6      1


        //          0 1 2 3 4 5 6 7
        // var  arr = [6,5,3,1,8,7,2,4];

        // i = 0第一次for循环的结果
        //  0 1 2 3 4 5 6 7
        //  5 6 3 1 8 7 2 4 

        // i = 1
        //  0 1 2 3 4 5 6 7
        //  5 3 6 1 8 7 2 4 

        // i = 2
        //  0 1 2 3 4 5 6 7
        //  5 3 1 6 8 7 2 4

        // i = 3
        //  0 1 2 3 4 5 6 7
        //  5 3 1 6 8 7 2 4

        // i = 4
        //  0 1 2 3 4 5 6 7
        //  5 3 1 6 7 8 2 4
        // i = 5
        //  0 1 2 3 4 5 6 7
        //  5 3 1 6 7 2 8 4

        // i = 6 
        // 0 1 2 3 4 5 6 7
        // 5 3 1 6 7 2 4 8


        // 之所以减一  原因可以从2个角度来分析 1是8个数只需要比较7次
        //                                  从代码的执行上来看不需要得7
        // for(var i = 0; i < arr.length - 1; i++){
        //     if(arr[i] > arr[i+1]){
        //         var temp = arr[i];
        //         arr[i] = arr[i+1];
        //         arr[i+1] = temp;
        //     }
        // }
        // console.log(arr);

        // -----------------------------


        // 趟     次      下标
        // 0      7       0~6
        // 1      6       0~5
        // 2      5       0~4
        // 3      4       0~3
        // 4      3       0~2
        // 5      2       0~1
        // 6      1       0
        var arr = [6, 5, 3, 1, 8, 7, 2, 4];


        // 第一趟的结果j = 0：5 3 1 6 7 2 4 8
        // 趟  0~6  
        // 8个数  一共比较7趟 每一趟都找到一个最大值  剩下的最后的那个数不需要比较
        for (var j = 0; j < arr.length - 1; j++) {
            
            // 比较的次数
            // 每一趟找到的那个最大值之后  就不需要再次比较了 
            for (var i = 0; i < arr.length - 1 - j; i++) {
                if (arr[i] > arr[i + 1]) {
                    var temp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = temp;
                }
            }
        }


        console.log(arr);


    </script>
</body>

</html>